function $( elementId ) {
  return document.getElementById(elementId);
}

function trim(str){    //删除左右两端的空格
  return str.replace(/(^\s*)|(\s*$)/g, "");
}
//调用发送ajax的ID
var acc ;
/*
*  根据不同的浏览器，获取Ajax对象
*/
function getAjaxObject() {
        var xmlHttpRequest;
        //  判断是否把XMLHttpRequest实现为一个本地javascript对象
        if(window.XMLHttpRequest){
        xmlHttpRequest = new XMLHttpRequest();
        }else if(window.ActiveXObject){  //  判断是否支持ActiveX控件
        try{
          //  通过实例化ActiveXObject的一个新实例来创建XMLHttpRequest对象
            xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");  //  msxml3以上版本
        }catch(e){
            try{
              //  通过实例化ActiveXObject的一个新实例来创建XMLHttpRequest对象
              xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");  //  msxml3以下版本
              }catch(e){}
        }
        }
        if ( !xmlHttpRequest ) {
          alert("创建Ajax对象失败，您将无法正常浏览网页");
        }
        return xmlHttpRequest;
}
/*
*  异步方式提交请求
*/
function sendRequestByAjax(method, url, data, dataHandler) {
	
  //  获取Ajax对象
  request = getAjaxObject();

  IE4 = +[1,];
  //  设置回调函数
  if( IE4 ){
    request.onload = dataHandler;
  } else {
    request.onreadystatechange = dataHandler;
  }
  request.open(method, url, true);  //  true代表使用异步方式 false代表使用同步方式
  //  处理提交方式
  if ( "get" == method.toLowerCase() ) {

    //  使用GET方式提交数据
    var urls = url.split("?");
    if ( urls[1] == "" || typeof(urls[1]) == "undefined" ) {
      url = urls[0] + "?" + data;
    } else {
      url = urls[0] + "?" + urls[1] + "&" + data;
    }
    data = null;  //   for GET method,request必须为空
  
  } else if ( "post" == method.toLowerCase() ){
    //  使用POST方式提交数据
          request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
      }

  request.send(data);
}
/*
*  通过Ajax异步提交表单
*/
function submitFormByAjax(formId) {
    sendRequestByAjax($(formId).method,$(formId).getAttributeNode("action").value, encodeFormData($(formId)),htmlCallBack);
}
/*
*  分析Form表单数据
*  @param  formElement  Form对象
*/
function encodeFormData(formElement) {
  var whereClause = "";
  var and = "";
  for ( i = 0 ; i < formElement.length ; i++ ) {
    var element = formElement[i];
    if ( element.name != "" ) {
      if (element.type=='select-one') {
        element_value = element.options[element.selectedIndex].value;
      } else if ( element.type == 'checkbox' || element.type == 'radio' ) {
        if ( element.checked == false ) {
          break;    
        }
        element_value = trim(element.value);
      } else {
        element_value = trim(element.value);
      }
      whereClause += and + trim(element.name) + '=' + element_value.replace(/\&/g,"%26");
      and = "&"
    }
  }
  return whereClause;
}
/*
*  绑定字符串，也可以实现绑定HTML代码
*/

function bindText(elementId, value) {
  var elem = $(elementId);
  //  分析绑定对象类型
  switch ( elem.tagName.toLowerCase() ) {
  case "div":
  case "span":
  case "textarea":
    elem.innerHTML = value;
    break;
  case "input":
    elem.value = value;
    break;
    default:
      alert("数据类型不匹配，无法进行数据绑定");
      return;
  }
  //saveHistory(elementId);     //  保存历史记录用于实现浏览器的前进、后退按钮
}
/*
*  HTML文件解析函数
*/
function htmlCallBack() {
  if( request.readyState == 4 ){
    if( request.status == 200 ){ 
      parseHTMLMessage();
    } else {
      alert("Not able to retrieve description"+request.statusText);
    }
  }
} 
/*
*  解析HTML文件
*/
function parseHTMLMessage() {
  //  获取返回的HTML代码
  var htmlCode = request.responseText;
  if (htmlCode =="false") {
    //  绑定HTML代码
    
  }else if(htmlCode =="renovate"){
    window.location.reload();
  }else{
    bindText(acc, htmlCode);
  }
    
}